草庐IT

java - JUnit:同时运行测试

全部标签

ruby - 如何在 ruby​​ 中针对正则表达式测试整个字符串?

如果整个字符串匹配(而不是子字符串),我如何针对正则表达式设置字符串以返回true?例如:test(\ee\,"street")#=>returnsfalsetest(\ee\,"ee")#=>returnstrue!谢谢。 最佳答案 您可以用\A匹配字符串的开头,用\Z匹配结尾。在ruby​​中,^和$也分别匹配行的开头和结尾:>>"a\na"=~/^a$/=>0>>"a\na"=~/\Aa\Z/=>nil>>"a\na"=~/\Aa\na\Z/=>0 关于ruby-如何在ruby​​

ruby - 在 Rspec 测试中运行 Rake 任务

我正在构建一个集成测试套件,我需要一个干净的数据库来处理一些逻辑。如何在我的一个测试中运行db:test:purge任务?我正在使用:ruby1.9.2、rails3.0.9、rspec2.6 最佳答案 您可以按如下方式调用Rake任务:require'rake'Rake::Task[name].invoke在这种情况下,这将导致以下代码:require'rake'Rake::Task['db:test:purge'].invoke 关于ruby-在Rspec测试中运行Rake任务,我们

ruby-on-rails - 如何测试 (ActiveRecord) 对象是否相等

在Rails3.0.3上的Ruby1.9.2中,我试图测试两个Friend之间的对象相等性(类继承来自ActiveRecord::Base)对象。对象相等,但测试失败:Failure/Error:Friend.new(name:'Bob').shouldeql(Friend.new(name:'Bob'))expected#got#(comparedusingeql?)只是为了笑,我还测试了对象身份,正如我预期的那样失败了:Failure/Error:Friend.new(name:'Bob').shouldequal(Friend.new(name:'Bob'))expected#=

ruby - 如何测试数组中的所有项目是否相同?

我可以生成几行代码来执行此操作,但我想知道是否有一种干净的Rubyesque方法可以执行此操作。如果我不清楚,我正在寻找的是一个数组方法,如果给定(比如)[3,3,3,3,3]或将返回true["rabbits","rabbits","rabbits"]但是[1,2,3,4,5]或["rabbits","将返回false兔子”,“野兔”]。谢谢 最佳答案 您可以使用Enumerable#all?如果给定block对集合中的所有元素都返回true,则返回true。array.all?{|x|x==array[0]}(如果数组为空,则永

ruby - 使用 RSpec 测试哈希内容

我有这样的测试:it"shouldnotindicatebackwardsjumpsifthecheckerpositionisnotaking"doboard=Board.newgame_board=board.create_test_boardboard.add_checker(game_board,:red,3,3)x_coord=3y_coord=3jump_locations={}jump_locations["upper_left"]=truejump_locations["upper_right"]=falsejump_locations["lower_left"]=fa

Ruby 在特定目录下运行 shell 命令

我知道如何在Ruby中运行shell命令,例如:%x[#{cmd}]但是,我该如何指定一个目录来运行这个命令呢?有没有类似的脱shell方式,类似Python中的subprocess.Popen:subprocess.Popen(r'c:\mytool\tool.exe',cwd=r'd:\test\local')谢谢! 最佳答案 您可以使用Dir.chdir的block版本。在block内,您位于请求的目录中,在block之后,您仍在上一个目录中:Dir.chdir('mydir'){%x[#{cmd}]}

ruby - RVM Ruby 1.9.1 安装找不到 zlib 但它的运行时和开发库在那里

尝试在全新安装(fedora)上使用RVM启动并运行Ruby1.9.1。执行rvminstall1.9.1后,rubygems错误日志显示找不到zlibnosuchfiletoload--zlib(LoadError)但是zlib运行时和开发库都已安装并且是最新的。我现在有点被这个难住了。 最佳答案 使用rvm安装zlibhttps://rvm.io/packages/zlib/rvmpackageinstallzlibrvmremove1.9.1rvminstall1.9.1-C--with-zlib-dir=$rvm_path/

ruby - 测试变量是否等于两个值之一

我想测试a是否等于1或2我能做到a==1||a==2但这需要重复a(这对于较长的变量来说会很烦人)我想做类似a==(1||2)的操作,但显然这是行不通的我可以做[1,2].include?(a),这还不错,但让我觉得有点难以阅读只是想知道如何使用惯用的ruby​​来做到这一点 最佳答案 您的第一个方法是惯用的Ruby。不幸的是,Ruby没有等同于Python的ain[1,2],我认为后者会更好。你的[1,2].include?a是最接近的替代方案,我认为它与最自然的方式有点倒退。当然,如果你经常使用它,你可以这样做:classObj

ruby - PATH 中的不安全世界可写目录/用户/用户名,运行 Ruby 命令时模式 040777

当我运行像gem-v这样的Ruby命令时,我得到了这个错误:/Users/kristoffer/.rvm/rubies/ruby-1.9.2-p180/bin/gem:4:warning:Insecureworldwritabledir/Users/kristofferinPATH,mode0407771.6.2首先我不明白这是什么意思。根据echo$PATH,/Users/kristoffer不在我的路径中。echo$PATH的结果是:/Users/kristoffer/.rvm/gems/ruby-1.9.2-p180/bin:/Users/kristoffer/.rvm/gems

ruby - Rubocop 25 行 block 大小和 RSpec 测试

典型的RSpec单元测试广泛使用嵌套的Rubyblock来构建代码并利用DSL“魔法”让规范像BDD语句一样阅读:describeFoodocontext"withabar"dobefore:eachdosubject{Foo.new().add_bar}endit"lookslikeabaz"doexpect#etc在理想的规范中,每个示例都可以相对简短和精确。然而,外部block增长到100行以上似乎很常见,因为RSpec结构以这种方式工作,并且没有采用很多规范示例,每个示例可能有几行特定设置,以获取describe与所描述主题的代码大小相同或更大的block。Rubocop最近的